{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "import statsmodels.api as sm\n",
    "from statsmodels.graphics.mosaicplot import mosaic\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "# 设置数据展示的格式\n",
    "pd.set_option('display.width', 1000)\n",
    "pd.set_option('display.precision', 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>education_num</th>\n",
       "      <th>capital_gain</th>\n",
       "      <th>capital_loss</th>\n",
       "      <th>hours_per_week</th>\n",
       "      <th>label</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>39</td>\n",
       "      <td>13</td>\n",
       "      <td>2174</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>50</td>\n",
       "      <td>13</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>13</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>38</td>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>53</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>28</td>\n",
       "      <td>13</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32556</th>\n",
       "      <td>27</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>38</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32557</th>\n",
       "      <td>40</td>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&gt;50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32558</th>\n",
       "      <td>58</td>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32559</th>\n",
       "      <td>22</td>\n",
       "      <td>9</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>20</td>\n",
       "      <td>&lt;=50K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32560</th>\n",
       "      <td>52</td>\n",
       "      <td>9</td>\n",
       "      <td>15024</td>\n",
       "      <td>0</td>\n",
       "      <td>40</td>\n",
       "      <td>&gt;50K</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32561 rows × 6 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "       age  education_num  capital_gain  capital_loss  hours_per_week   label\n",
       "0       39             13          2174             0              40   <=50K\n",
       "1       50             13             0             0              13   <=50K\n",
       "2       38              9             0             0              40   <=50K\n",
       "3       53              7             0             0              40   <=50K\n",
       "4       28             13             0             0              40   <=50K\n",
       "...    ...            ...           ...           ...             ...     ...\n",
       "32556   27             12             0             0              38   <=50K\n",
       "32557   40              9             0             0              40    >50K\n",
       "32558   58              9             0             0              40   <=50K\n",
       "32559   22              9             0             0              20   <=50K\n",
       "32560   52              9         15024             0              40    >50K\n",
       "\n",
       "[32561 rows x 6 columns]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data = pd.read_csv('./data/adult.data')\n",
    "cols = ['age', 'education_num', 'capital_gain', 'capital_loss', 'hours_per_week', 'label']\n",
    "data = data[cols]\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>label_code</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32556</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32557</th>\n",
       "      <td>&gt;50K</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32558</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32559</th>\n",
       "      <td>&lt;=50K</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32560</th>\n",
       "      <td>&gt;50K</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>32561 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        label  label_code\n",
       "0       <=50K           0\n",
       "1       <=50K           0\n",
       "2       <=50K           0\n",
       "3       <=50K           0\n",
       "4       <=50K           0\n",
       "...       ...         ...\n",
       "32556   <=50K           0\n",
       "32557    >50K           1\n",
       "32558   <=50K           0\n",
       "32559   <=50K           0\n",
       "32560    >50K           1\n",
       "\n",
       "[32561 rows x 2 columns]"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将文字变量转化为数字变量\n",
    "data['label_code'] = pd.Categorical(data.label).codes\n",
    "data[['label', 'label_code']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 2000x500 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 展示各变量的分布情况\n",
    "plt.rcParams.update({'font.size': 13})\n",
    "fig, ax = plt.subplots(1, 4, figsize=(20, 5), dpi=100)\n",
    "hist_data = data[['age', 'education_num', 'hours_per_week', 'label_code']]\n",
    "hist_data.hist(rwidth=0.9, grid=False, alpha=0.6, color='grey', ax=ax)\n",
    "plt.savefig('logit_hist.png', dpi=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>age</th>\n",
       "      <th>education_num</th>\n",
       "      <th>capital_gain</th>\n",
       "      <th>capital_loss</th>\n",
       "      <th>hours_per_week</th>\n",
       "      <th>label_code</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>32561.0</td>\n",
       "      <td>32561.0</td>\n",
       "      <td>32561.0</td>\n",
       "      <td>32561.0</td>\n",
       "      <td>32561.0</td>\n",
       "      <td>32561.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>38.6</td>\n",
       "      <td>10.1</td>\n",
       "      <td>1077.6</td>\n",
       "      <td>87.3</td>\n",
       "      <td>40.4</td>\n",
       "      <td>0.2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>13.6</td>\n",
       "      <td>2.6</td>\n",
       "      <td>7385.3</td>\n",
       "      <td>403.0</td>\n",
       "      <td>12.3</td>\n",
       "      <td>0.4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>17.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>28.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>37.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>48.0</td>\n",
       "      <td>12.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>45.0</td>\n",
       "      <td>0.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>90.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>99999.0</td>\n",
       "      <td>4356.0</td>\n",
       "      <td>99.0</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           age  education_num  capital_gain  capital_loss  hours_per_week  label_code\n",
       "count  32561.0        32561.0       32561.0       32561.0         32561.0     32561.0\n",
       "mean      38.6           10.1        1077.6          87.3            40.4         0.2\n",
       "std       13.6            2.6        7385.3         403.0            12.3         0.4\n",
       "min       17.0            1.0           0.0           0.0             1.0         0.0\n",
       "25%       28.0            9.0           0.0           0.0            40.0         0.0\n",
       "50%       37.0           10.0           0.0           0.0            40.0         0.0\n",
       "75%       48.0           12.0           0.0           0.0            45.0         0.0\n",
       "max       90.0           16.0       99999.0        4356.0            99.0         1.0"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过统计方法，了解数据性质\n",
    "# 显示基本统计信息\n",
    "data.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>label</th>\n",
       "      <th>&lt;=50K</th>\n",
       "      <th>&gt;50K</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>hours_per_week</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>(0.9, 20.6]</th>\n",
       "      <td>0.9</td>\n",
       "      <td>6.7e-02</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(20.6, 40.2]</th>\n",
       "      <td>0.8</td>\n",
       "      <td>1.9e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(40.2, 59.8]</th>\n",
       "      <td>0.6</td>\n",
       "      <td>4.0e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(59.8, 79.4]</th>\n",
       "      <td>0.6</td>\n",
       "      <td>4.2e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(79.4, 99.0]</th>\n",
       "      <td>0.6</td>\n",
       "      <td>3.5e-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "label            <=50K     >50K\n",
       "hours_per_week                 \n",
       "(0.9, 20.6]        0.9  6.7e-02\n",
       "(20.6, 40.2]       0.8  1.9e-01\n",
       "(40.2, 59.8]       0.6  4.0e-01\n",
       "(59.8, 79.4]       0.6  4.2e-01\n",
       "(79.4, 99.0]       0.6  3.5e-01"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算hours_per_week, label交叉报表\n",
    "cut = pd.cut(data['hours_per_week'], 5, precision=1)\n",
    "cross = pd.crosstab(cut, data['label'])\n",
    "# 将交叉报表归一化，利于分析数据\n",
    "cross_norm = cross.div(cross.sum(1).astype(float), axis=0)\n",
    "cross_norm    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqYAAAIMCAYAAAAn/G4XAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAA9hAAAPYQGoP6dpAABDV0lEQVR4nO3de7xUdb3/8ddH2XIRQdNSUBTNo6kdNT36k5QCrV8JqaVw1CLT8pJHKT2HLDMN0zIVBcN+drwk5S1veEk8efKCmamJppmKd8zAGySgIBfh+/tjrYFh9uy9Z/besBd7v56PxzwGvvNda33XfGfWfs933SKlhCRJktTR1unoBkiSJElgMJUkSVJBGEwlSZJUCAZTSZIkFYLBVJIkSYVgMJUkSVIhGEwlSZJUCN06ugFtEREB9Afe7ei2SJIkqUkbALNSCxfQX6uDKVko/UdHN0KSJEkt2gKY2VyFtT2Yvgvw2muv0adPn45uiyRJkirMnz+fAQMGQA17uNf2YApAnz59DKaSJElrOU9+kiRJUiEYTCVJklQIBlNJkiQVgsFUkiRJhWAwlSRJUiF0irPyJUnSmrN06VKWLVvW0c1QB2toaGDddddt13kaTCVJUk3mz5/P7NmzWbx4cUc3RQUQEfTt25fNNtuM7GacbWcwlSRJLZo/fz4zZ86kd+/ebLLJJjQ0NLRbGNHaJ6XEggULePvtt+nZsycbbrhhu8zXYCpJklo0e/ZsevfuzRZbbGEgFQA9e/Zk8eLFvPXWW/Tt27ddPhee/CRJkpq1dOlSFi9e3G7hQ51Hnz59WLZsWbsdc2wwlSRJzSqFjoaGhg5uiYqmW7ds5/sHH3zQLvMzmEqSpJo4WqpK7f2ZMJhKkiSpEAymkiRJKgSDqSRJ6tSmTp1KRDBp0qS6p50xYwYRwdixY9u9XZMmTSIimDp1arvPe21lMJUkSVIhGEwlSZJUCAZTSZIkFYLBVJIkdSnLly/nxz/+MZ/61KfYbLPNWG+99dhyyy05/vjjmTNnTpPTXXfddey888706NGDLbfckrFjx1a9fufrr7/O8ccfz5Zbbsl6661H//79OfbYY3nrrbdW52p1Ct6StA0eeq3jlj1oQMctW5KktdmSJUs4//zzOeSQQzjooINYf/31efTRR7niiiv44x//yGOPPcZ66623yjS33347L7/8MieccAKbbbYZt99+O2eeeSavvvoqV1555Yp6f//73xk0aBBLlizhG9/4Bh/96Ed58cUXueSSS7jvvvuYNm0affv2XdOrvNYwmEqSpC6le/fuvP766/Ts2XNF2Te/+U0++clPcvTRR3Prrbfy7//+76tM8+STT/Loo4+y2267AXDiiSdy8MEHM2nSJI477jj22msvAEaPHs3SpUv5y1/+whZbbLFi+pEjR7LXXnsxfvz41XKGf2fhrnxJktSlRMSKULps2TLmzp3L7Nmz2XfffQF45JFHGk3z2c9+dkUoLc3jlFNOAeCWW24BYN68edxxxx0ceOCB9OjRg9mzZ694DBw4kG233Zb//d//Xd2rt1ZzxFSSJHU5N9xwAxdccAF/+ctfWLp06SqvvfPOO43q77DDDo3KdtxxRwBefvllAJ577jmWL1/OFVdcwRVXXFF1udtss01bm96pGUwlSVKXMnnyZA499FD23HNPLrroIgYMGECPHj1YtmwZn//851m+fHmr5ptSAmDUqFF87Wtfq1qn/PABNWYwlSRJXcpVV11Fjx49uO++++jVq9eK8unTpzc5zbPPPtuo7JlnngFWjoJuu+22RARLlizhM5/5TDu3umvwGFNJktSlrLvuukTEKiOjKSXOPvvsJqf5/e9/z+OPP75K/fPOOw+AL37xiwBsvPHGDBs2jMmTJ/Pwww83mkdKibfffrud1qJzcsRUkiR1KSNGjODmm29m33335YgjjmDp0qXceuutLFy4sMlpdtllF/bdd19OOOEE+vXrx2233cbdd9/NV7/6VQYNGrSi3iWXXMI+++zDpz71KY444gg+8YlPsHz5cl5++WVuu+02jjjiCM/Kb4bBVJIkdSmHHXYY7777LuPHj2fMmDFstNFGHHDAAfz0pz9l4403rjrNgQceyPbbb88555zDc889x0c+8hFOP/10Tj/99FXqDRgwgMcee4xzzz2X2267jauvvpoePXowYMAADjjggEaXodKqonSg7tooIvoA8+bNm0efPn3W+PK9wL4kqStYtGgRr7zyCltvvTU9evTo6OaoQGr5bMyfP790U4G+KaX5zc3PY0wlSZJUCAZTSZIkFYLBVJIkSYVgMJUkSVIhGEwlSZJUCAZTSZIkFYLBVJIkSYVgMJUkSVIhGEwlSZJUCAZTSZIkFYLBVJIkSYVgMJUkSVIhGEwlSZJUCN06ugGSJGnt9tBrHd2CVQ0a0NEtaF9Tp05l6NChVV8bPnw4d9xxR6PyO++8k7PPPpsnn3yS7t27s99++3Heeeex9dZbr1JvyJAhTJs2jffee2+V8iVLljBq1ChuvPFGTjjhBCZOnEhEtN9KNcFgKkmStBY49thjGTx48CplW2yxRaN6kydPZsSIEeyyyy6cf/75zJs3jwkTJrD33nszbdo0+vfv3+xyFi5cyMEHH8xdd93FD37wA84666x2XY/mGEwlSZLaUUqJJ598kl133bVd5zto0CBGjRrVbJ2lS5cyevRoBgwYwAMPPEDv3r0B2H///dl9990ZO3Ysl156aZPTz507l+HDh/PQQw8xfvx4TjrppPZchRZ5jKkkSVI7ePbZZznttNPYZptt+OIXv7halrFgwQIWLVrU5Ov3338/s2bN4uijj14RSgF23XVXhgwZwvXXX8/SpUurTvvmm28yZMgQHnnkEX75y1+u8VAKBlNJkqRWe+ONNxg/fjy77747O+64I+PGjWPnnXdmwoQJq9RbvHgxs2fPrunxzjvvVF3Wt7/9bXr37k3Pnj3ZbrvtuOiii0gprVLn0UcfBbLR1Up77bUX8+fP5/nnn2/02quvvsrgwYOZPn06N954I0ceeWTr3pA2cle+JElSHRYsWMAtt9zC1Vdfzd13301KicGDB3PppZcyYsQINtpoo0bTXHfddRx11FE1zX+rrbZixowZK/7f0NDAgQceyLBhw+jfvz+zZs3iiiuu4KSTTuKJJ57gyiuvXFF31qxZAGy++eaN5lsqmzlzJjvttNOK8iVLlrDPPvswd+5cpkyZwn777VdTO1cHg6kkSVINXnjhBc4880xuvfVWFixYwK677so555zD4YcfXvUkpHKf+9zn+P3vf1/Tcnr27LnK//fee29uu+22VcqOOeYYhg0bxqRJkzj66KPZe++9gezEJYDu3bs3mm+PHj1WqVOybNky3nrrLTbeeGMGDOjYSxoYTCVJkmrw4IMPcs0117Duuuty2mmnceqpp7L++uvXNG2/fv3o169fu7VlnXXW4dRTT+Wuu+5iypQpK4Jpr169gOzQgUqlY1NLdUp69uzJtddey8iRIxkyZAj33Xcf22+/fbu1tR4eYypJklSDAw88kAsvvJCdd96ZH//4x2y66aZ85StfYcqUKU2eUFTy/vvv88Ybb9T0ePvtt2tqz8CBAwGYPXv2irLSpaBmzpzZqH6prNpu/gMPPJCbbrqJOXPmMGTIEKZPn15TG9qbwVSSJKkGH/rQhzj55JN5/PHHefrppxk9ejR//OMf+cIXvkC/fv04/vjjeeCBBxqdkARw/fXXrxg1bemxxx571NSeF154AYBNN910RVlp2oceeqhR/Ycffpg+ffqw3XbbVZ3fAQccwM0338w///lPhg4dyrPPPltTO9pTVHvz1hYR0QeYN2/ePPr06bPGl9+Rd7robHe1kCQV16JFi3jllVfYeuutVxynWK4r3/kppcQf/vAHrrrqKm666SbmzZvHlltuydFHH83pp5++ot7rr7/O008/XdM8e/bsuWLXPMCcOXPYeOONV6mzePFi9ttvPx588EEeeeQR9txzTyC7julWW21FQ0MDTz/99IpLRj355JPstttuHHXUUVx++eUr5lPtzk9TpkzhkEMOYcMNN+Tee+9lxx13bLKtLX02AObPn0/fvn0B+qaU5je37gbTNjCYSpK6AoNpbRYtWsRvf/tbrr76ap599tmql2VqjT322IP+/fuz++67rzgr/+qrr+aFF15g9OjR/OxnP1ul/o033sihhx7KLrvswjHHHMP8+fMZP348EcFjjz22yq78pm5Jeuedd3LwwQfTt29f7r333lXO4q9c5/YMpu7KlyRJagc9evRg5MiR3HbbbTz++OPtNt8RI0bw1ltvMXHiRI4//nguvPBCNt98c6699tpGoRRg5MiR3H777XTv3p0xY8Zw7rnnMnjwYB588MGqx5dWM2zYMG655RbmzZvH0KFD+dvf/tZu69McR0zbwBFTSVJXUMuomLomR0wlSZLUKRlMJUmSVAgGU0mSJBWCwVSSJEmFYDCVJElSIRhMJUmSVAgGU0mSJBWCwVSSJEmFYDCVJElSIRhMJUmSVAgGU0mSJBWCwVSSJEmFYDCVJElSIXTr6AZIkqS125gxYzq6CasYN25cRzehkalTpzJ06NCqrw0fPpw77rijUfmdd97J2WefzZNPPkn37t3Zb7/9OO+889h6661XqTdkyBCmTZvGe++9t0r5kiVLGDVqFDfeeCMnnHACEydOJCLab6VWA4OpJEnSGnLssccyePDgVcq22GKLRvUmT57MiBEj2GWXXTj//POZN28eEyZMYO+992batGn079+/2eUs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\n",
      "text/plain": [
       "<Figure size 800x600 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 图形化归一化后的交叉报表\n",
    "plt.rcParams.update({'font.size': 13})\n",
    "fig, ax = plt.subplots(1, 1, figsize=(8, 6), dpi=100)\n",
    "cross_norm.plot(kind='bar', color=['#C6E2FF', '0.45'], rot=0, ax=ax)\n",
    "plt.savefig('logit_mosaic.png', dpi=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>label</th>\n",
       "      <th>&lt;=50K</th>\n",
       "      <th>&gt;50K</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>education_num</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>[1, 9]</th>\n",
       "      <td>12835</td>\n",
       "      <td>1919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(9, 10]</th>\n",
       "      <td>5904</td>\n",
       "      <td>1387</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(10, 12]</th>\n",
       "      <td>1823</td>\n",
       "      <td>626</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>(12, 16]</th>\n",
       "      <td>4158</td>\n",
       "      <td>3909</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "label           <=50K   >50K\n",
       "education_num               \n",
       "[1, 9]          12835   1919\n",
       "(9, 10]          5904   1387\n",
       "(10, 12]         1823    626\n",
       "(12, 16]         4158   3909"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算education_num, label交叉报表\n",
    "## 为了展示美观，手动定义labels\n",
    "bins = [0, 0.25, 0.5, 0.75, 1]\n",
    "_, edges = pd.qcut(data['education_num'], bins, precision=3, retbins=True)\n",
    "labels = []\n",
    "for i in range(len(edges) - 1):\n",
    "    if i == 0:\n",
    "        labels.append(f'[{int(edges[i])}, {int(edges[i+1])}]')\n",
    "    else:\n",
    "        labels.append(f'({int(edges[i])}, {int(edges[i+1])}]')\n",
    "cut1 = pd.qcut(data['education_num'], bins, labels=labels)\n",
    "cross1 = pd.crosstab(cut1, data['label'])\n",
    "cross1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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P1+SlLrlx0o5b03HyDMAAEAViYppqMMH9p1SGy88+nt9/t/5evHdT9S2Q2c/9ayk0Pphat46zjMCXajwvvHD1JPa6PR81gAAANUgLr6T9uzaftLHvz31ac19a6oeefEddT/nPD/2zLf+F4zU+m+/VF5urqfs2y8/U0BAgNp37lbp56+JCM8AAABVpFvv/krbvVPphw54le/9ZYeWLZqjZYvmKC8vV6lbftSyRXOUvHyJp85/P3pPrzzzgIaNuU5NmrfShjUpnlvR9hbNnl7mjoGFvktZqWWL5mjdt19KkpJXLNGyRXO0ffNv0zHG33KvjmUd0QO3jFHy8iX66N3/6KXHJuuSq29S81axfnhFah+mbQAAAFSRHn0GKyqmoVJWfKzhYyZ6ytckL9df77nRc3/Zotlatmi2mreO07xVqZKkr//3X0nS4tnTtXj2dK92H5zypi656gZJru20g+vVU0RUTJl9mfbcI/ouZaXn/rMP/p8k6abfP6JJf3hUktSidZxefPdTvfT4ZN3/uysUHhml4Vder9vu+1vFn3wdQXgGAACoIsH16mno6Gv1adJMr/B8yVU3eMJvaR56broeem56uef48buvdNHl4z0X/JXm5Q9WlN9hSQnde+nfcz8vs86JEydkCwoctVfbEZ4BAACq0IRb79XYQWdo58+bFRt/ht/b37AmWU+9Otfv7ZZm765UjenfrsrOV90IzwAAAFWoaYvWeuDZN3Ro/95KCc+zVm72e5tladyspV5P+sZzP7R+WJWev6oRngEAAKrYRZddU91d8JvgevWU0L1XdXejyrDaBgAAAOAQ4RkAAKCOK1y+rvjtwxmveNWz1uqtqU9p1LltNLhjfd125UBt/mGtV51pzz2q4d29txgvKCjQo3dN0OCOoUpZubSyn061YtoGAADAaeKfM5cpJLS+537L2Hivx2e8/De9+eITuuPBfyiufWfNnPac7h5/od75ZIMaNW3us01rrf7255u1bNFsPf3qPPUZNLRSn0N1IzwDAADUcLt3/KxWcfHlVyxHQvfeCguP8PlYTna2Zvz7b7ru9vt15Q13SJK69uyrMf3aas5bU3XLvU/6PG7Kw3doydy39fjUmep/4chT7mNNx7QNAACAGujwwf1679VnNe78BD11702Vfr71q1cp60imzh95taesfli4+l94qVKK7HRY1IuP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eMq++uorrVu3TseOHVOjRo00YMAAtW3btsLtp6amasOGDdq7d68yMzPVt29fn6ErJydHy5cv19atWz1TE84//3yvqQizZs3yXDh3/vnn16pNOyIjIzV06FBlZWX5ve2AgADdfvvtfm+3LM2aNdPChQv1/vvvS5KCg4Or9PyAxGobAFArnThxolICUVX56aeflJ2drc6dO3vKvv76a6WkpOiss87SqFGj1KhRI3344Yeei9sqIjU1VQcPHlRsbKyCgkofJ0pKStKuXbt08cUXa9iwYUpLS9P8+fO96lx44YUaN25chftQU3Tu3Flt2rSp7m74Rb169dS9e3c1b95czZs3P6ndE4FTxcgzAKDKfffdd0pMTPRs4pGfn6+vv/5avXv31jnnnCNJatu2rQ4dOqTk5GSNHj26Qu0PGjRIgwcPliRt3brVZ509e/Zox44dGjt2rFq3bi1JioiI0HvvvacdO3Z4VpXgE8PSTZkypURZixYtNH78eK+y3bt3a8WKFTpw4IDCw8PVs2dP9ejRw/N4RkaGpk2bplGjRql9+/ae8m3btmnBggVKSEjQ0KFDK++JABVAeAYAVKn09HTt2bPHaxOMX3/9Vbm5uV7LoEmuAL169eoK75bnZERy+/btCgsL8wRnyRX8oqOjtX379hJ9gW89e/bUGWec4blfr149r8fT09M1d+5cxcfHa8CAAdq7d69WrFihoKAgnXnmmaW2m5qaqqSkJHXq1ElDhw5llBk1BuEZAFCldu7cqeDgYDVt2tRTduLECUkqsTFGQECA8vPz9euvv/p9BLi03fJK212vrsvIyFBUVFSFQ2p0dLRatmxZ6uPffvutIiIiNGLECAUEBCg2NlZHjhxRcnKyunXr5vN8u3bt0vz589W+fXsNGzaM4IwahTnPAIAqlZaWpoYNG3oFopiYGEkqMb+58H52drbf+5Gdna2QkJAS5aGhoZVyvpouOTlZr732mlatWuW1JvOp2r59uzp06OD1h1Hnzp119OhRHTx4sET93bt368MPP1RcXJwncAM1CSPPAIAqlZWVVWJjjZCQEHXu3FlfffWVGjdurCZNmmjjxo3auXOnJGfTMHBq+vTpo/DwcK1fv14pKSmKjY1Vt27d1KFDhzKnzKxatUrLly9XSEiI2rdvr0GDBnne37y8PB05cqTECH/h/cOHD6tJkyae8rS0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\n",
      "text/plain": [
       "<Figure size 800x600 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 将交叉报表图形化\n",
    "plt.rcParams.update({'font.size': 13})\n",
    "fig, ax = plt.subplots(1, 1, figsize=(8, 6), dpi=100)\n",
    "props = lambda key: {'color': '0.45'} if ' >50K' in key else {'color': '#C6E2FF'}\n",
    "mosaic(cross1[[' >50K', ' <=50K']].stack(), properties=props, ax=ax)\n",
    "ax.set_xlabel(cross1.index.name)\n",
    "plt.savefig('logit_mosaic2.png', dpi=200)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 将数据分为训练集和测试集\n",
    "train_set, test_set = train_test_split(data, test_size=0.2, random_state=2310)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimization terminated successfully.\n",
      "         Current function value: 0.406725\n",
      "         Iterations 8\n",
      "                           Logit Regression Results                           \n",
      "==============================================================================\n",
      "Dep. Variable:             label_code   No. Observations:                32561\n",
      "Model:                          Logit   Df Residuals:                    32555\n",
      "Method:                           MLE   Df Model:                            5\n",
      "Date:                Sat, 04 Nov 2023   Pseudo R-squ.:                  0.2632\n",
      "Time:                        15:43:02   Log-Likelihood:                -13243.\n",
      "converged:                       True   LL-Null:                       -17974.\n",
      "Covariance Type:            nonrobust   LLR p-value:                     0.000\n",
      "==================================================================================\n",
      "                     coef    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------\n",
      "Intercept         -8.3157      0.115    -72.240      0.000      -8.541      -8.090\n",
      "age                0.0430      0.001     35.211      0.000       0.041       0.045\n",
      "education_num      0.3228      0.007     47.361      0.000       0.309       0.336\n",
      "capital_gain       0.0003   9.68e-06     32.916      0.000       0.000       0.000\n",
      "capital_loss       0.0007   3.25e-05     21.480      0.000       0.001       0.001\n",
      "hours_per_week     0.0407      0.001     30.776      0.000       0.038       0.043\n",
      "==================================================================================\n"
     ]
    }
   ],
   "source": [
    "# 训练模型并分析模型效果\n",
    "formula = 'label_code ~ age + education_num + capital_gain + capital_loss + hours_per_week'\n",
    "model = sm.Logit.from_formula(formula, data=data)\n",
    "re = model.fit()\n",
    "print(re.summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "检验假设education_num的系数等于0：\n",
      "<F test: F=2243.090738470156, p=0.0, df_denom=3.26e+04, df_num=1>\n",
      "检验假设education_num的系数等于0.32和hours_per_week的系数等于0.04同时成立：\n",
      "<F test: F=0.230516045737942, p=0.794124988795008, df_denom=3.26e+04, df_num=2>\n"
     ]
    }
   ],
   "source": [
    "# 用f_test检验education_num的系数是否显著\n",
    "print('检验假设education_num的系数等于0：')\n",
    "print(re.f_test('education_num=0'))\n",
    "# 用f_test检验两个假设是否同时成立\n",
    "print('检验假设education_num的系数等于0.32和hours_per_week的系数等于0.04同时成立：')\n",
    "print(re.f_test('education_num=0.32, hours_per_week=0.04'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "                  2.5%   97.5%      OR\n",
      "Intercept       0.0002  0.0003  0.0002\n",
      "age             1.0415  1.0465  1.0440\n",
      "education_num   1.3626  1.3995  1.3809\n",
      "capital_gain    1.0003  1.0003  1.0003\n",
      "capital_loss    1.0006  1.0008  1.0007\n",
      "hours_per_week  1.0389  1.0443  1.0416\n"
     ]
    }
   ],
   "source": [
    "# 理解模型结果\n",
    "pd.set_option('display.precision', 4)\n",
    "conf = re.conf_int()\n",
    "conf['OR'] = re.params\n",
    "# 计算各个特征对事件发生比的影响\n",
    "# conf里的三列：置信区间的下界、上界和估计值\n",
    "conf.columns = ['2.5%', '97.5%', 'OR']\n",
    "# 各个变量对事件发生比的影响\n",
    "print(np.exp(conf))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "        Logit Marginal Effects       \n",
      "=====================================\n",
      "Dep. Variable:             label_code\n",
      "Method:                          dydx\n",
      "At:                           overall\n",
      "==================================================================================\n",
      "                    dy/dx    std err          z      P>|z|      [0.025      0.975]\n",
      "----------------------------------------------------------------------------------\n",
      "age                0.0055      0.000     37.227      0.000       0.005       0.006\n",
      "education_num      0.0415      0.001     53.118      0.000       0.040       0.043\n",
      "capital_gain    4.099e-05   1.17e-06     34.942      0.000    3.87e-05    4.33e-05\n",
      "capital_loss    8.991e-05   4.08e-06     22.062      0.000    8.19e-05    9.79e-05\n",
      "hours_per_week     0.0052      0.000     32.171      0.000       0.005       0.006\n",
      "==================================================================================\n"
     ]
    }
   ],
   "source": [
    "# 计算各个特征的边际效应\n",
    "print(re.get_margeff(at='overall').summary())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "事件发生概率（预测概率）大于0.6的数据个数：\n",
      "584\n",
      "事件发生概率（预测概率）大于0.5的数据个数：\n",
      "846\n"
     ]
    }
   ],
   "source": [
    "# 使用训练好的模型对测试数据做预测\n",
    "# 计算事件发生的概率\n",
    "test_set['prob'] = re.predict(test_set)\n",
    "print('事件发生概率（预测概率）大于0.6的数据个数：')\n",
    "print(test_set[test_set['prob'] > 0.6].shape[0])\n",
    "print('事件发生概率（预测概率）大于0.5的数据个数：')\n",
    "print(test_set[test_set['prob'] > 0.5].shape[0])\n",
    "# 根据预测的概率，得出最终的预测\n",
    "alpha=0.5\n",
    "test_set['pred'] = test_set.apply(lambda x: 1 if x['prob'] > alpha else 0, axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "查准率: 0.702, 查全率: 0.377, f1: 0.491\n"
     ]
    }
   ],
   "source": [
    "# 计算预测结果的查准查全率以及f1\n",
    "bins = np.array([0, 0.5, 1])\n",
    "label = test_set['label_code']\n",
    "pred = test_set['pred']\n",
    "tn, fp, fn, tp = np.histogram2d(label, pred, bins=bins)[0].flatten()\n",
    "precision = tp / (tp + fp) \n",
    "recall = tp / (tp + fn)\n",
    "f1 = 2 * precision * recall / (precision + recall)\n",
    "print('查准率: %.3f, 查全率: %.3f, f1: %.3f' % (precision, recall, f1))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
